package org.needle4j.db; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import org.junit.Rule; import org.junit.Test; import org.needle4j.db.transaction.TransactionHelper; import org.needle4j.junit.DatabaseRule; public class DBPersistenceUnitTest { @Rule public DatabaseRule db = new DatabaseRule("TestDataModel"); @Test public void testDB_withPersistenceUnit() throws Exception { final Person person = new Person(); final EntityManager entityManager = db.getEntityManager(); person.setMyName("My Name"); assertNotNull(db); assertNotNull(entityManager); final EntityTransaction tx = entityManager.getTransaction(); tx.begin(); entityManager.persist(person); final Person fromDB = entityManager.find(Person.class, person.getId()); assertSame(person, fromDB); tx.commit(); } @Test public void testTransactions() throws Exception { final Person myEntity = new Person(); final EntityManager entityManager = db.getEntityManager(); myEntity.setMyName("My Name"); final TransactionHelper transactionHelper = new TransactionHelper(entityManager); transactionHelper.saveObject(myEntity); final Person fromDb = transactionHelper.loadObject(Person.class, myEntity.getId()); assertFalse(myEntity == fromDb); } }